home *** CD-ROM | disk | FTP | other *** search
/ JCSM Shareware Collection 1996 September / JCSM Shareware Collection (JCS Distribution) (September 1996).ISO / astrolgy / astrw116.zip / ASTROBB.MST < prev    next >
Text File  |  1995-03-16  |  7KB  |  206 lines

  1. '*************************************************************************
  2. '*                       MSSetup Toolkit Sample 2
  3. '*************************************************************************
  4.  
  5. '$DEFINE DEBUG  ''Define for script development/debugging
  6.  
  7. '$INCLUDE 'setupapi.inc'
  8. '$INCLUDE 'msdetct2.inc'
  9. '''$INCLUDE 'msregdb.inc'
  10. '''$INCLUDE 'msshared.inc'
  11.  
  12. ''Dialog ID's
  13. CONST ASKQUIT      = 200
  14. CONST DESTPATH     = 300
  15. CONST EXITFAILURE  = 400
  16. CONST EXITQUIT     = 600
  17. CONST EXITSUCCESS  = 1000
  18. CONST OPTIONS      = 800
  19. CONST APPHELP      = 900
  20. CONST FONTOPT      = 1100
  21. CONST CHECK        = 2500
  22. CONST CUSTINST     = 6200
  23. CONST TOOBIG       = 6300
  24. CONST BADPATH      = 6400
  25. CONST MULTILIST    = 5200
  26. CONST HELPPATH     = 1300
  27. CONST DATAPATH     = 1500
  28. CONST USERPATH     = 1200
  29. CONST DBPATH       = 1700
  30. CONST TEXTPATH     = 2000
  31.  
  32. ''Bitmap ID
  33. CONST LOGO         = 1
  34.  
  35. ''File Types
  36. CONST OPBDBCVT     = 1
  37. CONST OPLOCCVT     = 2
  38. CONST OPWINCVT     = 3
  39.  
  40. CONST MAINI        = 1
  41. CONST HELPI        = 2
  42. CONST DATAI        = 3
  43. CONST USERI        = 4
  44. CONST SDB_I        = 5
  45. CONST LDB_I        = 6
  46. CONST XDB_I        = 7
  47. CONST TEXTI        = 8
  48.  
  49. GLOBAL SINGMULT$    ''Single or Multiple Directory installation
  50. GLOBAL FONTS$       ''TrueType or Adobe Fonts
  51. GLOBAL MAIND$       ''Default destination directory.
  52.  
  53. '' Options List Symbol Names
  54.  
  55. ''CustInst list symbol names
  56.  
  57. ''Dialog list symbol names
  58.  
  59.  
  60. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  61. DECLARE FUNCTION ReplacePath (szOld$,szNew$,szDir$) AS STRING
  62. DECLARE SUB InstallFont (szFont$, szName$)
  63. DECLARE FUNCTION AddFontResource LIB "GDI.EXE" (szFont$) AS INTEGER
  64. DECLARE FUNCTION RemoveFontResource LIB "GDI.EXE" (szFont$) AS INTEGER
  65. DECLARE FUNCTION CreateScalableFontResource LIB "GDI.EXE" (hid%,szPath$, szFont$, szDir$ ) AS INTEGER
  66.  
  67.  
  68. INIT:
  69.     CUIDLL$ = "mscuistf.dll"            ''custom user interface dll
  70.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  71.  
  72.     SetBitmap CUIDLL$, LOGO
  73.     SetTitle "ASTRO For Windows Setup"
  74.     IF GetWindowsMajorVersion() < 3 OR ( GetWindowsMajorVersion() = 3 AND GetWindowsMinorVersion() < 10 ) THEN
  75.        i% = DoMsgBox("ASTRO For Windows Requires Windows Version 3.1 or Greater!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  76.        END
  77.        ENDIF
  78.  
  79.     WINDRIVE$ = MID$(GetWindowsDir, 1, 1)
  80.     WINDRIVE$= ucase$(WINDRIVE$)
  81.  
  82.     MAIND$ = GetSymbolValue("STF_SRCDIR")
  83.     SINGMULT$="1"
  84.  
  85.     ''CustInst list symbols
  86.     FONTS$= "1"
  87.  
  88.  
  89. FONTOPT:
  90.     SetSymbolValue "RadioDefault", FONTS$
  91. FONTOPT1:
  92.     sz$ = UIStartDlg(CUIDLL$, FONTOPT, "FRadioDlgProc", APPHELP, HELPPROC$)
  93.     newopt$ = GetSymbolValue("ButtonChecked")
  94.  
  95.     IF sz$ = "CONTINUE" THEN
  96.     UIPop 1
  97.     IF newopt$ <> FONTS$ THEN
  98.         FONTS$ = newopt$
  99.     END IF
  100.     newopt$ = ""
  101.     GOTO INSTALL
  102.     ELSEIF sz$ = "BACK" THEN
  103.     GOTO FONTOPT1
  104.     ELSEIF sz$ = "REACTIVATE" THEN
  105.     GOTO FONTOPT1
  106.     ELSEIF sz$ = "EXIT" THEN
  107.     GOSUB QUIT
  108.     GOTO FONTOPT1
  109.     ELSE
  110.     UIPop 1
  111.     newopt$ = ""
  112.     GOTO INSTALL
  113.     END IF
  114.  
  115.  
  116. INSTALL:
  117.     ini$ = MakePath(GetWindowsDir(), "ASTROW.INI")
  118.     CreateIniKeyValue ini$, "Directories", "Main", MAIND$, cmoOverwrite
  119.     CreateIniKeyValue ini$, "Directories", "Data", MAIND$, cmoOverwrite
  120.     CreateIniKeyValue ini$, "Directories", "DB",   MAIND$, cmoOverwrite
  121.     CreateIniKeyValue ini$, "Directories", "Help", MAIND$, cmoOverwrite
  122.     CreateIniKeyValue ini$, "Directories", "User", MAIND$, cmoOverwrite
  123.     IF FONTS$ = "1" THEN
  124.        InstallFont "AstGly", "AstGlyphs (TrueType)"
  125.     ELSE
  126.        i% = DoMsgBox("Use ATM Control Panel to Install Fonts. Fonts Will Be found in your ASTRO Directory!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  127.     END IF
  128.     CreateProgmanGroup "ASTRO for Windows", GetWindowsDir()+"ASTROW.GRP", cmoNone
  129.     ShowProgmanGroup  "ASTRO for Windows", 1, cmoNone
  130.     CreateProgmanItem "ASTRO for Windows", "ASTRO For Windows", MakePath(MAIND$,"ASTROW.EXE"), ",,,,"+MAIND$, cmoOverwrite
  131.     CreateProgmanItem "ASTRO for Windows", "ASTRO Help", "WINHELP.EXE " +MakePath(MAIND$,"ASTROW.HLP"), "", cmoOverwrite
  132.     CreateProgmanItem "ASTRO for Windows", "ASTRO Documentation", "WRITE.EXE " +MakePath(MAIND$,"ASTROW.WRI"), "", cmoOverwrite
  133.     CreateProgmanItem "ASTRO for Windows", "Commercial Use Agreement", "WRITE.EXE " +MakePath(MAIND$,"COMAGRE.WRI"), "", cmoOverwrite
  134.     CreateProgmanItem "ASTRO for Windows", "Registration Form", "WRITE.EXE " +MakePath(MAIND$,"REGISTER.WRI"), "", cmoOverwrite
  135.     CreateProgmanItem "ASTRO for Windows", "README File", "WRITE.EXE " +MakePath(MAIND$,"README.WRI"), "", cmoOverwrite
  136.     CreateProgmanItem "ASTRO for Windows", "VERSIONS File", "WRITE.EXE " +MakePath(MAIND$,"VERSIONS.WRI"), "", cmoOverwrite
  137.     CreateProgmanItem "ASTRO for Windows", "README.DOC File", "NOTEPAD.EXE " +MakePath(MAIND$,"README.DOC"), "", cmoOverwrite
  138.  
  139.  
  140. QUIT:
  141.     IF ERR = 0 THEN
  142.         dlg% = EXITSUCCESS
  143.     ELSEIF ERR = STFQUIT THEN
  144.         dlg% = EXITQUIT
  145.     ELSE
  146.         dlg% = EXITFAILURE
  147.     END IF
  148. QUITL1:
  149.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  150.     IF sz$ = "REACTIVATE" THEN
  151.         GOTO QUITL1
  152.     END IF
  153.     UIPop 1
  154.  
  155.     END
  156.  
  157.  
  158. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  159.     IF szDir$ = "" THEN
  160.         MakePath = szFile$
  161.     ELSEIF szFile$ = "" THEN
  162.         MakePath = szDir$
  163.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  164.         MakePath = szDir$ + szFile$
  165.     ELSE
  166.         MakePath = szDir$ + "\" + szFile$
  167.     END IF
  168. END FUNCTION
  169.  
  170. FUNCTION ReplacePath (szOld$,szNew$,szDir$) STATIC AS STRING
  171.    IF szDir$ <> szOld$ THEN
  172.       l% = LEN(szOld$)
  173.       x% = LEN(szNew$)
  174.       IF MID$(szOld$,l%-1) = "\" AND MID$(szNew$,x%-1) <> "\" THEN
  175.      p$ = MID$(szDir$,l%)
  176.       ELSEIF MID$(szOld$,l%-1) <> "\" AND MID$(szNew$,x%-1) = "\" THEN
  177.      p$ = MID$(szDir$,l%+2)
  178.       ELSE
  179.      p$ = MID$(szDir$,l%+1)
  180.       ENDIF
  181.       ReplacePath = szNew$ + p$
  182.    ELSE
  183.       ReplacePath = szNew$
  184.       END IF
  185. END FUNCTION
  186.  
  187.  
  188. SUB InstallFont (szFont$, szName$) STATIC
  189.     t$ = "                                              "
  190.     p$ = MakePath(GetWindowsSysDir(), szFont$+".TTF" )
  191.     s$ = MakePath(MAIND$, szFont$+".TTF" )
  192.     CopyFile s$, p$, cmoNone, 0
  193.     IF GetExistingFOTFileForTTF( p$, t$, LEN(t$) ) > 0 THEN
  194.        p$ = MakePath(GetWindowsSysDir(), szFont$+".FOT" )
  195.        e% = RemoveFontResource(p$)
  196.        e% =CreateScalableFontResource(0,p$, szFont$+".TTF", GetWindowsSysDir() )
  197.        e% =AddFontResource(p$)
  198.     ELSE
  199.        p$ = MakePath(GetWindowsSysDir(), szFont$+".FOT" )
  200.        e% = CreateScalableFontResource(0,p$, szFont$+".TTF", GetWindowsSysDir() )
  201.        CreateIniKeyValue "WIN.INI", "fonts", szName$, szFont$+".FOT", cmoNone
  202.        e% = AddFontResource(p$)
  203.        END IF
  204. END SUB
  205.  
  206.